#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>
/*
Copyright (C) 2013 Johan Ceuppens

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/*@class SIGCMType;

@interface Trackable : NSObject
{
	
	struct Callback { 
		SIGCMType *data;
		void*(*fun)(void*,void*);//FIXMENOTE use class typeinstead of void* such as in Functor class
	} Callback_DUMMY;

	NSMutableArray *callbacklist;
	NSEnumerator *iterator;
}

- (id) init;
- (void)addCallback:(SIGCMType*)d fun:(void*)f;
- (void)track;

@end
*/
#import "FunctorFactory.h"
@interface Trackable : NSObject
{
	FunctorFactory *ffactory;
	NSMutableArray *callbacklist;
	NSEnumerator *iterator;
}

- (id) init;
- (void)addFunctor:(int)nArgs cFunction:(void*)f;
- (void)track;
- (void)clear;

@end
